﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Data.Common;
using System.Data.SqlClient;
using System.Configuration;

namespace nSin
{
    /// <summary>
    /// Interaction logic for ImportaFileIscritti.xaml
    /// </summary>
    public partial class ImportaFileIscritti : UserControl
    {
        string nomeSocieta = null;
        public ImportaFileIscritti()
        {
            InitializeComponent();
        }
        public ImportaFileIscritti(string NomeSocieta)
        {
            InitializeComponent();
            nomeSocieta = NomeSocieta;
        }
        private void button1_Click(object sender, RoutedEventArgs e)
        {
            string connectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + txtFileName.Text + ";Extended Properties=\"Excel 8.0;HDR=YES;\"";

            DbProviderFactory factory = DbProviderFactories.GetFactory("System.Data.OleDb");
            ConnectionStringSettingsCollection connectionStringSettings =
                               ConfigurationManager.ConnectionStrings;

            ConnectionStringSettings myCS = connectionStringSettings["nSin.Properties.Settings.nSynDBConnectionString"];

            IFormatProvider culture = new System.Globalization.CultureInfo("it-IT", false);


            //using (SqlConnection sqlConnection = new SqlConnection(myCS.ConnectionString))
            using (NSynDB myDb = new NSynDB(myCS.ConnectionString))
            {
                using (DbConnection connection = factory.CreateConnection())
                {
                    connection.ConnectionString = connectionString;

                    using (DbCommand command = connection.CreateCommand())
                    {
                        switch (nomeSocieta)
                        {
                            case "CREVAL":
                                command.CommandText = "SELECT [SINDACATO], [DENOMINAZIONE AZIENDA], [ABI], [COGNOME], [NOME DIPENDENTE], [CODICE FISCALE], [PIAZZA LAVORO], [PROVINCIA], [CAP], [PR], [CONTRIB] FROM [Foglio1$]";
                                break;
                            case "POPSO":
                                command.CommandText = "SELECT * FROM [SILCEA$]";
                                break;
                            default:
                                break;
                        }
                        //[SINDACATO], [DENOMINAZIONE AZIENDA], [ABI], [DTRIF.]	COGNOME	NOME DIPENDENTE	CODICE FISCALE	PIAZZA LAVORO	PROVINCIA	CAP	PR	CONTRIB

                        connection.Open();
                        Decimal ValoreContributo = 0;

                        using (DbDataReader dr = command.ExecuteReader())
                        {
                            while (dr.Read())
                            {
                                switch (nomeSocieta)
                                {
                                    case "CREVAL":
                                        if (dr["SINDACATO"].ToString() != "")
                                        {
                                            System.Diagnostics.Debug.WriteLine(dr["SINDACATO"].ToString());
                                            System.Diagnostics.Debug.WriteLine(dr["DENOMINAZIONE AZIENDA"].ToString());
                                            System.Diagnostics.Debug.WriteLine(dr["ABI"].ToString());
                                            System.Diagnostics.Debug.WriteLine(dr["COGNOME"].ToString());
                                            System.Diagnostics.Debug.WriteLine(dr["NOME DIPENDENTE"].ToString());
                                            System.Diagnostics.Debug.WriteLine(dr["CODICE FISCALE"].ToString());
                                            System.Diagnostics.Debug.WriteLine(dr["PIAZZA LAVORO"].ToString());
                                            System.Diagnostics.Debug.WriteLine(dr["PROVINCIA"].ToString());
                                            System.Diagnostics.Debug.WriteLine(dr["CAP"].ToString());
                                            System.Diagnostics.Debug.WriteLine(dr["PR"].ToString());
                                            System.Diagnostics.Debug.WriteLine(dr["CONTRIB"].ToString());
                                            ValoreContributo = 0;
                                            if (dr["CONTRIB"].ToString() != "")
                                                ValoreContributo = Convert.ToDecimal(dr["CONTRIB"].ToString());
                                            myDb.InserisciUtente(dr["DENOMINAZIONE AZIENDA"].ToString(), Convert.ToInt32(dr["ABI"].ToString()),
                                                dr["COGNOME"].ToString(), dr["NOME DIPENDENTE"].ToString(), dr["CODICE FISCALE"].ToString(),
                                                dr["PIAZZA LAVORO"].ToString(), dr["PROVINCIA"].ToString(), dr["CAP"].ToString(), dr["PR"].ToString(),
                                                ValoreContributo, DateTime.ParseExact(txtDataRiferimentoContributi.Text, "d/M/yyyy", culture));
                                        }
                                        break;
                                    case "POPSO":
                                        int posizioneSindacato = 0;
                                        int posizioneSocieta = 1;
                                        int posizioneAbi = 2;
                                        int posizioneMese = 3;
                                        int posizioneCognome = 4;
                                        int posizioneNome = 5;
                                        int posizioneCodiceFiscale = 6;
                                        int posizioneComune = 7;
                                        int posizioneProvincia = 8;
                                        int posizioneCap = 9;
                                        int posizioneContributo = 10;
                                        System.Diagnostics.Debug.WriteLine(dr[posizioneSindacato].ToString());
                                        System.Diagnostics.Debug.WriteLine(dr[posizioneSocieta].ToString());
                                        System.Diagnostics.Debug.WriteLine(dr[posizioneAbi].ToString());
                                        System.Diagnostics.Debug.WriteLine(dr[posizioneMese].ToString());
                                        System.Diagnostics.Debug.WriteLine(dr[posizioneCognome].ToString());
                                        System.Diagnostics.Debug.WriteLine(dr[posizioneNome].ToString());
                                        System.Diagnostics.Debug.WriteLine(dr[posizioneCodiceFiscale].ToString());
                                        System.Diagnostics.Debug.WriteLine(dr[posizioneComune].ToString());
                                        System.Diagnostics.Debug.WriteLine(dr[posizioneProvincia].ToString());
                                        System.Diagnostics.Debug.WriteLine(dr[posizioneCap].ToString());
                                        System.Diagnostics.Debug.WriteLine(dr[posizioneContributo].ToString());
                                        
                                        ValoreContributo = 0;
                                        if (dr[posizioneContributo].ToString() != "")
                                            ValoreContributo = Convert.ToDecimal(dr[posizioneContributo].ToString().Replace(',', '.'));
                                        myDb.InserisciUtente(dr[posizioneSocieta].ToString(), Convert.ToInt32(dr[posizioneAbi].ToString()),
                                            dr[posizioneCognome].ToString(), dr[posizioneNome].ToString(), dr[posizioneCodiceFiscale].ToString(),
                                            dr[posizioneComune].ToString(), dr[posizioneProvincia].ToString(), dr[posizioneCap].ToString(), dr[posizioneProvincia].ToString(),
                                            ValoreContributo, DateTime.ParseExact(txtDataRiferimentoContributi.Text, "d/M/yyyy", culture));
                                        break;
                                    default:
                                        break;
                                }
                            }

                        }
                    }
                }
            }

        }

        private void btnOpenFile_Click(object sender, RoutedEventArgs e)
        {
            // Configure open file dialog box
            Microsoft.Win32.OpenFileDialog dlg = new Microsoft.Win32.OpenFileDialog();
            dlg.FileName = "Document"; // Default file name
            dlg.DefaultExt = ".xls"; // Default file extension
            dlg.Filter = "Excel documents (.xls)|*.xls"; // Filter files by extension
            dlg.InitialDirectory = @"C:\Users\Carlo\Desktop\Dati\Silcea\Varie";

            // Show open file dialog box
            Nullable<bool> result = dlg.ShowDialog();

            // Process open file dialog box results
            if (result == true)
            {
                // Open document
                txtFileName.Text = dlg.FileName;
            }
        }

    }
}
